<template>
  <div class="chooser-component">
    <ul class="chooser-list">
      <li
        v-for="(item, index) in selections"
        @click="toggleSelection(index)"
        :title="item.label"
        :class="{active: checkActive(index)}"
      >{{ item.label }}
      </li>
    </ul>
  </div>
</template>

<script>
  import _ from 'lodash'

  export default {
    props: {
      selections: {
        type: Array,
        default: [{
          label: 'test',
          value: 0
        }]
      }
    },
    data() {
      return {
        nowIndexes: [0]
      }
    },
    methods: {
      toggleSelection(index) {
        if (this.nowIndexes.indexOf(index) === -1) {
          this.nowIndexes.push(index)
        }
        else {
          this.nowIndexes = _.remove(this.nowIndexes, (idx) => {
            return idx !== index
          })
        }
        let nowObjArray = _.map(this.nowIndexes, (idx) => {
          return this.selections[idx]
        })
        this.$emit('on-change', nowObjArray)
      },
      checkActive(index) {
        return this.nowIndexes.indexOf(index) !== -1
      }
    }
  }
</script>

<style scoped>
  .chooser-component {
    position: relative;
    display: inline-block;
  }

  .chooser-list li {
    display: inline-block;
    border: 1px solid #e3e3e3;
    height: 25px;
    line-height: 25px;
    padding: 0 8px;
    margin-right: 5px;
    border-radius: 3px;
    text-align: center;
    cursor: pointer;
  }

  .chooser-list li.active {
    border-color: #4fc08d;
    background: #4fc08d;
    color: #fff;
  }
</style>
